Nutanix Calm DSL和其他類似的DSL可被定義為:「特定領域語言(DSL)是專用於特定應用程序域的計算機語言。這與通用語言(GPL)相反,後者廣泛適用於各個領域。」
利用一些例子就能夠更清楚的了解Nutanix Calm DSL,它是簡化特定網域或產品的編程任務的一種方式。Nutanix Calm DSL 是專門為與 Nutanix Calm 產品一起編程使用的,從編寫自定義應用程序的角度來看,它不會干擾與影響不同系統的交互操作。
從使用角度來看,利用通用GPL語言可以描述產品或技術特有的故意缺失的功能。因此它更適合與多種技術語言合作。
列舉幾個通用程式語言:
如何使用Nutanix Calm DSL?
Nutanix Calm DSL官方頁上有如何在Mac OS X上安裝DSL的教學步驟。本編文章將要示範以Ubuntu Linux系統進行示範,開發系統基於配置如下:
不需要特別的設置即可開始,Calm DSL 簡便的裝載方式就是要讓大家能夠「開箱即用」,排除任何異常或專一的依賴關係。現在就安裝,以下步驟能讓您在Linux終端上舒適地瀏覽。
我們需要的第一件事是Nutanix開發「資料」的位置。
我們需要透過安裝Calm DSL依賴項(如果尚未存在)來確保它們已得到滿足。這裡還指定了一些其他軟體包,這些軟件包未包含在文檔中,但它們對於這種性質的其他任務有一定程度的必須性。
安裝依賴項後,需要裝載 Calm DSL 本身。注意現在我們正在使用SSH克隆Calm DSL 存儲庫,但是在某些系統上可能需要通過HTTPS進行克隆。
我們需要創建一個Python3虛擬環境(venv)並將其激活。請注意(venv)註釋,該註釋告訴我們我們正在Python虛擬環境中工作(本節末尾的圖片)。
雖然Nutanix Calm DSL提供了一些測試,但在本文中我們先略過測試步驟,下一步是設置開發環境。
完成創建本機開發版本,並允許在本機運行Calm DSL。如果您只打算在本機使用Calm DSL,可以跳至「初始化和測試」部分。
在當今的環境中,最常使用容器化系統執行開發、測試和生產任務。儘管本文不會詳細介紹什麼是容器化,但將快速帶大家瀏覽如何運行命令以安裝Docker,並且在 Ubuntu 系統上構建Calm DSL容器。
注意:這些命令直接從Linux的Docker安裝頁面獲取。該頁面上有一個步驟指定瞭如何以非root用戶身份運行Docker,但此處未包括該步驟。
遵循以下步驟:
有了可用的開發環境或docker容器,現在能夠初始化 Calm DSL,與Calm DSL相同的目錄中或在您的容器中,運行下面的命令並按照提示進行操作。
如下面的螢幕截圖所示,我們提供了有關環境的一些信息,包括Prism Central(PC)實例的IP地址,根據我們使用的項目。此示例中沒有erroe,就能夠開始使用DSL!
安裝好Nutanix Calm DSL,並準備好開發環境,其中最基本示例–列出Prism Central實例中可用的Calm藍圖。進行如下所示。
執行此命令將返回PC實例中所有可用藍圖的列表以及相關藍圖的訊息。
注意:為了允許正確的格式設置,下面的螢幕截圖已裁剪了一些內容。 在實際環境中執行此命令將顯示完整的藍圖描述,UUID等。
我們列出了所有藍圖及其詳細訊息。Nutanix Calm DSL還可以做什麼?
透過設置和基本用法示範,現在開始使用Calm DSL來創建新的藍圖。Calm DSL背後的工程團隊為了簡化使用者流程,內置創建演示藍圖。執行以下命令。
這是什麼情況?Calm DSL 創建了一個名為 HelloBlueprint 的文件,並在該文件夾中創建blueprint.py 文件,以及在 Prism Central 實例上建立 Calm 藍圖所需的所有附帶文件。
目前該藍圖僅在我們的本機 / 開發系統上,尚未上傳到 Prism Central。這是一部分原因,如果再次運行「calm get bps」,則不會看到HelloBlueprint。可以重新編輯blueprint.py文件和其他隨附文件,使藍圖完全滿足我們的需球。完成後就可以創建 Prism Central 上傳JSON規範。讓我們快速看一下blueprint.py文件。
關於生成 blueprint.py 文件的一大優點是,它在自身內部記錄了很多內
現在對如何將藍圖編寫為Python代碼有了一個更好的想法,可以生成準備上傳的 JSON 藍圖。
該命令的輸出是可以上傳到Prism Central的JSON。該方法對於將完整的JSON規範傳遞到單獨的命令中非常有用,例如,Prism Central v3 API調用可從第三方應用程序創建藍圖。
不過在範例中,將Calm DSL用於所有內容,因此讓我們以「適當」的方式上傳新藍圖。以下命令顯示瞭如何執行此操作。請注意,「 – name」的值必須唯一且尚未使用。
查看結果,可以看到我們的藍圖已創建,並且已自動設置為ACTIVE狀態。這表明該藍圖已準備好啟動。
如果需要,我們現在可以登錄Prism Central檢查是否已經創建藍圖,但是留在終端中並在那裡完成最後的步驟。
Calm DSL GitHub存儲庫為例,可以使用DSL本身來獲得各種幫助。
可以使用「 –name」參數按名稱搜索藍圖。從邏輯上講,我們現在可以使用此命令查找新的藍圖。
讓我們看看結果!
最後一步!值得考慮的是如果藍圖只是放在那兒而不被使用,那麼它就喪失意義了。考讓我們透過啟動藍圖並啟動並執行範例應用程序來結束。
在今天這篇文章(或您的Calm DSL容器)中使用的同一終端中,我們將使用以下命令。這也顯示了啟動應用程序後,如何獲取有關應用程序的訊息。因為已經在集群上執行了多次,所以最後使用數字不同,這樣就不會出現應用程序名稱衝突的情況。
這僅涉及我們可以使用Calm DSL所做的工作,因此,下一次我們將更深入地研究一下,並從頭開始創建自己的自定義藍圖。
希望對Nutanix Calm DSL的簡要介紹提供了另一個示例,說明如何通過代碼操縱Nutanix平台和生態系統。